﻿using Microsoft.International.Converters.PinYinConverter;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;

public class PinYinConverter
{
    public static List<string> Match(List<string> datalist, string text)
    {
        List<string> check = new List<string>();

        if (string.IsNullOrEmpty(text))
        {
            return check;
        }
        else if (text.Length > 0)
        {
            for (int i = 0; i < datalist.Count; i++)
            {
                StringBuilder str = new StringBuilder();
                char[] chs; //定义一个字符数组来接收每个汉字的拼音

                var charArray = datalist[i].ToCharArray(); // 遍历需要匹配的所有汉字
                for (int j = 0; j < charArray.Length; j++)
                {
                    var c = charArray[j];
                    if (ChineseChar.IsValidChar(c))
                    {
                        ChineseChar CC = new ChineseChar(c);
                        // 将该汉字转化为拼音集合
                        ReadOnlyCollection<string> roc = CC.Pinyins;
                        // 获取集合中第一个数据即为该汉字的拼音
                        chs = roc[0].ToLower().ToCharArray();
                        // 将该汉字的拼音首字母追加到可变字符串中
                        str.Append(chs[0]);
                    }
                    else
                    {
                        str.Append(c);
                    }
                }

                // 判断该字符中是否包含输入的拼音
                if (str.ToString().Contains(text))
                {
                    check.Add(datalist[i]);//将查到的数据加到list中
                }
            }
        }
        return check;
    }
}
